__author__ = 'zhiweifan'
# 与js类似，字符串通过单引号或双引号成对标识，与成对标识相同的引号用\转义
print('spam eggs')
print('doesn\'t')
print("doesn't")
print('"Yes," he said.')
print('"Isn\'t," she said.')

# 用\n分行
print("one line\n"
      "two line"
      "three line")

# 字符串可使用 +号连接，如果都是字面字符串，也可以 直接连接，"a" + "b"或者"a" "b"
print("a" + "b")
print("a" "b")

# 字符串也可以被截取（检索）。类似于 C ，字符串的第一个字符索引为 0 。没有独立的字符类型，字符就是长度为 1 的字符串。类似 Icon ，可以用 切片标注 法截取字符串：由两个索引分割的复本。
word = 'Help' 'A'
print(word[4]) #A
print(word[2:4]) #lp
print(word[2:]) #lp

# 与java一样，不同于 C 字符串，Python 字符串不可变。向字符串文本的某一个索引赋值会引发错误:
# word[0] = 'x'

# 切片操作有个有用的不变性： s[:i] + s[i:] 等于 s:

print(word[1:100]) #elpA'

# 索引也可以是负数，这将导致从右边开始计算。 例如:
#
# >>> word[-1]     # The last character
# 'A'
# >>> word[-2]     # The last-but-one character
# 'p'
# >>> word[-2:]    # The last two characters
# 'pA'
# >>> word[:-2]    # Everything except the last two characters
# 'Hel'
# 请注意 -0 实际上就是 0 ，所以它不会导致从右边开始计算！
#
# >>> word[-0]     # (since -0 equals 0)
# 'H'
# 负索引切片越界会被截断，不要尝试将它用于单元素（非切片）检索:
#
# >>> word[-100:]
# 'HelpA'
# >>> word[-10]    # error
# Traceback (most recent call last):
#   File "<stdin>", line 1, in ?
# IndexError: string index out of range
# 有个办法可以很容易的记住切片的工作方式：切片时的索引是在两个字符 之间 。左边第一个字符的索引为0，，而长度为 n 的字符串其最后一个字符的右界索引为 n 。例如:
#
#  +---+---+---+---+---+
#  | H | e | l | p | A |
#  +---+---+---+---+---+
#  0   1   2   3   4   5
# -5  -4  -3  -2  -1

# 内置函数 len() 返回字符串长度:
s = 'supercalifragilisticexpialidocious'
print(len(s))
ch = "中文长度" #4
print(len(ch))
print(3*s) # 3个s连接，列表也可进行这样的运算

